home *** CD-ROM | disk | FTP | other *** search
- .title Test of Z80 / HD64180 assembler
-
- offset = 0x55 ;arbitrary constants
- n = 0x20
- nn = 0x0584
-
- ; notes:
- ; Leading 'a' operand is optional.
- ; If offset is ommitted 0 is assumed.
-
- ;***********************************************************
- ;add with carry to 'a'
- adc a,(hl) ; 8E
- adc a,offset(ix) ; DD 8E 55
- adc a,offset(iy) ; FD 8E 55
- adc a,a ; 8F
- adc a,b ; 88
- adc a,c ; 89
- adc a,d ; 8A
- adc a,e ; 8B
- adc a,h ; 8C
- adc a,l ; 8D
- adc a,#n ; CE 20
- ;***********************************************************
- adc (hl) ; 8E
- adc offset(ix) ; DD 8E 55
- adc offset(iy) ; FD 8E 55
- adc a ; 8F
- adc b ; 88
- adc c ; 89
- adc d ; 8A
- adc e ; 8B
- adc h ; 8C
- adc l ; 8D
- adc #n ; CE 20
- ;***********************************************************
- ;add with carry register pair to 'hl'
- adc hl,bc ; ED 4A
- adc hl,de ; ED 5A
- adc hl,hl ; ED 6A
- adc hl,sp ; ED 7A
- ;***********************************************************
- ;add operand to 'a'
- add a,(hl) ; 86
- add a,offset(ix) ; DD 86 55
- add a,offset(iy) ; FD 86 55
- add a,a ; 87
- add a,b ; 80
- add a,c ; 81
- add a,d ; 82
- add a,e ; 83
- add a,h ; 84
- add a,l ; 85
- add a,#n ; C6 20
- ;***********************************************************
- ;add register pair to 'hl'
- add hl,bc ; 09
- add hl,de ; 19
- add hl,hl ; 29
- add hl,sp ; 39
- ;***********************************************************
- ;add register pair to 'ix'
- add ix,bc ; DD 09
- add ix,de ; DD 19
- add ix,ix ; DD 29
- add ix,sp ; DD 39
- ;***********************************************************
- ;add register pair to 'iy'
- add iy,bc ; FD 09
- add iy,de ; FD 19
- add iy,iy ; FD 29
- add iy,sp ; FD 39
- ;***********************************************************
- ;logical 'and' operand with 'a'
- and a,(hl) ; A6
- and a,offset(ix) ; DD A6 55
- and a,offset(iy) ; FD A6 55
- and a,a ; A7
- and a,b ; A0
- and a,c ; A1
- and a,d ; A2
- and a,e ; A3
- and a,h ; A4
- and a,l ; A5
- and a,#n ; E6 20
- ;***********************************************************
- ;test bit of location or register
- bit 0,(hl) ; CB 46
- bit 0,offset(ix) ; DD CB 55 46
- bit 0,offset(iy) ; FD CB 55 46
- bit 0,a ; CB 47
- bit 0,b ; CB 40
- bit 0,c ; CB 41
- bit 0,d ; CB 42
- bit 0,e ; CB 43
- bit 0,h ; CB 44
- bit 0,l ; CB 45
- bit 1,(hl) ; CB 4E
- bit 1,offset(ix) ; DD CB 55 4E
- bit 1,offset(iy) ; FD CB 55 4E
- bit 1,a ; CB 4F
- bit 1,b ; CB 48
- bit 1,c ; CB 49
- bit 1,d ; CB 4A
- bit 1,e ; CB 4B
- bit 1,h ; CB 4C
- bit 1,l ; CB 4D
- bit 2,(hl) ; CB 56
- bit 2,offset(ix) ; DD CB 55 56
- bit 2,offset(iy) ; FD CB 55 56
- bit 2,a ; CB 57
- bit 2,b ; CB 50
- bit 2,c ; CB 51
- bit 2,d ; CB 52
- bit 2,e ; CB 53
- bit 2,h ; CB 54
- bit 2,l ; CB 55
- bit 3,(hl) ; CB 5E
- bit 3,offset(ix) ; DD CB 55 5E
- bit 3,offset(iy) ; FD CB 55 5E
- bit 3,a ; CB 5F
- bit 3,b ; CB 58
- bit 3,c ; CB 59
- bit 3,d ; CB 5A
- bit 3,e ; CB 5B
- bit 3,h ; CB 5C
- bit 3,l ; CB 5D
- bit 4,(hl) ; CB 66
- bit 4,offset(ix) ; DD CB 55 66
- bit 4,offset(iy) ; FD CB 55 66
- bit 4,a ; CB 67
- bit 4,b ; CB 60
- bit 4,c ; CB 61
- bit 4,d ; CB 62
- bit 4,e ; CB 63
- bit 4,h ; CB 64
- bit 4,l ; CB 65
- bit 5,(hl) ; CB 6E
- bit 5,offset(ix) ; DD CB 55 6E
- bit 5,offset(iy) ; FD CB 55 6E
- bit 5,a ; CB 6F
- bit 5,b ; CB 68
- bit 5,c ; CB 69
- bit 5,d ; CB 6A
- bit 5,e ; CB 6B
- bit 5,h ; CB 6C
- bit 5,l ; CB 6D
- bit 6,(hl) ; CB 76
- bit 6,offset(ix) ; DD CB 55 76
- bit 6,offset(iy) ; FD CB 55 76
- bit 6,a ; CB 77
- bit 6,b ; CB 70
- bit 6,c ; CB 71
- bit 6,d ; CB 72
- bit 6,e ; CB 73
- bit 6,h ; CB 74
- bit 6,l ; CB 75
- bit 7,(hl) ; CB 7E
- bit 7,offset(ix) ; DD CB 55 7E
- bit 7,offset(iy) ; FD CB 55 7E
- bit 7,a ; CB 7F
- bit 7,b ; CB 78
- bit 7,c ; CB 79
- bit 7,d ; CB 7A
- bit 7,e ; CB 7B
- bit 7,h ; CB 7C
- bit 7,l ; CB 7D
- ;***********************************************************
- ;call subroutine at nn if condition is true
- call C,nn ; DC 84 05
- call M,nn ; FC 84 05
- call NC,nn ; D4 84 05
- call NZ,nn ; C4 84 05
- call P,nn ; F4 84 05
- call PE,nn ; EC 84 05
- call PO,nn ; E4 84 05
- call Z,nn ; CC 84 05
- ;***********************************************************
- ;unconditional call to subroutine at nn
- call nn ; CD 84 05
- ;***********************************************************
- ;complement carry flag
- ccf ; 3F
- ;***********************************************************
- ;compare operand with 'a'
- cp a,(hl) ; BE
- cp a,offset(ix) ; DD BE 55
- cp a,offset(iy) ; FD BE 55
- cp a,a ; BF
- cp a,b ; B8
- cp a,c ; B9
- cp a,d ; BA
- cp a,e ; BB
- cp a,h ; BC
- cp a,l ; BD
- cp a,#n ; FE 20
- ;***********************************************************
- ;compare location (hl) and 'a'
- ;decrement 'hl' and 'bc'
- cpd ; ED A9
- ;***********************************************************
- ;compare location (hl) and 'a'
- ;decrement 'hl' and 'bc'
- ;repeat until 'bc' = 0
- cpdr ; ED B9
- ;***********************************************************
- ;compare location (hl) and 'a'
- ;increment 'hl' and decrement 'bc'
- cpi ; ED A1
- ;***********************************************************
- ;compare location (hl) and 'a'
- ;increment 'hl' and decrement 'bc'
- ;repeat until 'bc' = 0
- cpir ; ED B1
- ;***********************************************************
- ;1's complement of 'a'
- cpl ; 2F
- ;***********************************************************
- ;decimal adjust 'a'
- daa ; 27
- ;***********************************************************
- ;decrement operand
- dec (hl) ; 35
- dec offset(ix) ; DD 35 55
- dec offset(iy) ; FD 35 55
- dec a ; 3D
- dec b ; 05
- dec bc ; 0B
- dec c ; 0D
- dec d ; 15
- dec de ; 1B
- dec e ; 1D
- dec h ; 25
- dec hl ; 2B
- dec ix ; DD 2B
- dec iy ; FD 2B
- dec l ; 2D
- dec sp ; 3B
- ;***********************************************************
- ;disable interrupts
- di ; F3
- ;***********************************************************
- ;decrement b and jump relative if b # 0
- djnz .+0x12 ; 10 10
- ;***********************************************************
- ;enable interrupts
- ei ; FB
- ;***********************************************************
- ;exchange location and (sp)
- ex (sp),hl ; E3
- ex (sp),ix ; DD E3
- ex (sp),iy ; FD E3
- ;***********************************************************
- ;exchange af and af'
- ex af,af' ; 08
- ;***********************************************************
- ;exchange de and hl
- ex de,hl ; EB
- ;***********************************************************
- ;exchange:
- ; bc <-> bc'
- ; de <-> de'
- ; hl <-> hl'
- exx ; D9
- ;***********************************************************
- ;halt (wait for interrupt or reset)
- halt ; 76
- ;***********************************************************
- ;set interrupt mode
- im 0 ; ED 46
- im 1 ; ED 56
- im 2 ; ED 5E
- ;***********************************************************
- ;load 'a' with input from device n
- in a,(n) ; DB 20
- ;***********************************************************
- ;load register with input from (c)
- in a,(c) ; ED 78
- in b,(c) ; ED 40
- in c,(c) ; ED 48
- in d,(c) ; ED 50
- in e,(c) ; ED 58
- in h,(c) ; ED 60
- in l,(c) ; ED 68
- ;***********************************************************
- ;increment operand
- inc (hl) ; 34
- inc offset(ix) ; DD 34 55
- inc offset(iy) ; FD 34 55
- inc a ; 3C
- inc b ; 04
- inc bc ; 03
- inc c ; 0C
- inc d ; 14
- inc de ; 13
- inc e ; 1C
- inc h ; 24
- inc hl ; 23
- inc ix ; DD 23
- inc iy ; FD 23
- inc l ; 2C
- inc sp ; 33
- ;***********************************************************
- ;load location (hl) with input
- ;from port (c)
- ;decrement 'hl' and 'b'
- ind ; ED AA
- ;***********************************************************
- ;load location (hl) with input
- ;from port (c)
- ;decrement 'hl' and 'b'
- ;repeat until 'b' = 0
- indr ; ED BA
- ;***********************************************************
- ;load location (hl) with input
- ;from port (c)
- ;increment 'hl' and decrement 'b'
- ini ; ED A2
- ;***********************************************************
- ;load location (hl) with input
- ;from port (c)
- ;increment 'hl' and decrement 'b'
- ;repeat until 'b' = 0
- inir ; ED B2
- ;***********************************************************
- ;unconditional jump to location nn
- jp nn ; C3 84 05
- jp (hl) ; E9
- jp (ix) ; DD E9
- jp (iy) ; FD E9
- ;***********************************************************
- ;jump to location if condition is true
- jp C,nn ; DA 84 05
- jp M,nn ; FA 84 05
- jp NC,nn ; D2 84 05
- jp NZ,nn ; C2 84 05
- jp P,nn ; F2 84 05
- jp PE,nn ; EA 84 05
- jp PO,nn ; E2 84 05
- jp Z,nn ; CA 84 05
- ;***********************************************************
- ;unconditional jump relative to PC+e
- jr jr1+0x10 ; 18 10
- ;***********************************************************
- ;jump relative to PC+e if condition is true
- jr1: jr C,jr2+0x10 ; 38 10
- jr2: jr NC,jr3+0x10 ; 30 10
- jr3: jr NZ,jr4+0x10 ; 20 10
- jr4: jr Z,jr5+0x10 ; 28 10
- jr5:
- ;***********************************************************
- ;load source to destination
- ld a,(hl) ; 7E
- ld a,offset(ix) ; DD 7E 55
- ld a,offset(iy) ; FD 7E 55
- ld a,a ; 7F
- ld a,b ; 78
- ld a,c ; 79
- ld a,d ; 7A
- ld a,e ; 7B
- ld a,h ; 7C
- ld a,l ; 7D
- ld a,#n ; 3E 20
- ld b,(hl) ; 46
- ld b,offset(ix) ; DD 46 55
- ld b,offset(iy) ; FD 46 55
- ld b,a ; 47
- ld b,b ; 40
- ld b,c ; 41
- ld b,d ; 42
- ld b,e ; 43
- ld b,h ; 44
- ld b,l ; 45
- ld b,#n ; 06 20
- ld c,(hl) ; 4E
- ld c,offset(ix) ; DD 4E 55
- ld c,offset(iy) ; FD 4E 55
- ld c,a ; 4F
- ld c,b ; 48
- ld c,c ; 49
- ld c,d ; 4A
- ld c,e ; 4B
- ld c,h ; 4C
- ld c,l ; 4D
- ld c,#n ; 0E 20
- ld d,(hl) ; 56
- ld d,offset(ix) ; DD 56 55
- ld d,offset(iy) ; FD 56 55
- ld d,a ; 57
- ld d,b ; 50
- ld d,c ; 51
- ld d,d ; 52
- ld d,e ; 53
- ld d,h ; 54
- ld d,l ; 55
- ld d,#n ; 16 20
- ld e,(hl) ; 5E
- ld e,offset(ix) ; DD 5E 55
- ld e,offset(iy) ; FD 5E 55
- ld e,a ; 5F
- ld e,b ; 58
- ld e,c ; 59
- ld e,d ; 5A
- ld e,e ; 5B
- ld e,h ; 5C
- ld e,l ; 5D
- ld e,#n ; 1E 20
- ld h,(hl) ; 66
- ld h,offset(ix) ; DD 66 55
- ld h,offset(iy) ; FD 66 55
- ld h,a ; 67
- ld h,b ; 60
- ld h,c ; 61
- ld h,d ; 62
- ld h,e ; 63
- ld h,h ; 64
- ld h,l ; 65
- ld h,#n ; 26 20
- ld l,(hl) ; 6E
- ld l,offset(ix) ; DD 6E 55
- ld l,offset(iy) ; FD 6E 55
- ld l,a ; 6F
- ld l,b ; 68
- ld l,c ; 69
- ld l,d ; 6A
- ld l,e ; 6B
- ld l,h ; 6C
- ld l,l ; 6D
- ld l,#n ; 2E 20
- ;***********************************************************
- ld i,a ; ED 47
- ld r,a ; ED 4F
- ld a,i ; ED 57
- ld a,r ; ED 5F
- ;***********************************************************
- ld (bc),a ; 02
- ld (de),a ; 12
- ld a,(bc) ; 0A
- ld a,(de) ; 1A
- ;***********************************************************
- ld (hl),a ; 77
- ld (hl),b ; 70
- ld (hl),c ; 71
- ld (hl),d ; 72
- ld (hl),e ; 73
- ld (hl),h ; 74
- ld (hl),l ; 75
- ld (hl),#n ; 36 20
- ;***********************************************************
- ld offset(ix),a ; DD 77 55
- ld offset(ix),b ; DD 70 55
- ld offset(ix),c ; DD 71 55
- ld offset(ix),d ; DD 72 55
- ld offset(ix),e ; DD 73 55
- ld offset(ix),h ; DD 74 55
- ld offset(ix),l ; DD 75 55
- ld offset(ix),#n ; DD 36 55 20
- ;***********************************************************
- ld offset(iy),a ; FD 77 55
- ld offset(iy),b ; FD 70 55
- ld offset(iy),c ; FD 71 55
- ld offset(iy),d ; FD 72 55
- ld offset(iy),e ; FD 73 55
- ld offset(iy),h ; FD 74 55
- ld offset(iy),l ; FD 75 55
- ld offset(iy),#n ; FD 36 55 20
- ;***********************************************************
- ld (nn),a ; 32 84 05
- ld (nn),bc ; ED 43 84 05
- ld (nn),de ; ED 53 84 05
- ld (nn),hl ; 22 84 05
- ld (nn),sp ; ED 73 84 05
- ld (nn),ix ; DD 22 84 05
- ld (nn),iy ; FD 22 84 05
- ;***********************************************************
- ld a,(nn) ; 3A 84 05
- ld bc,(nn) ; ED 4B 84 05
- ld de,(nn) ; ED 5B 84 05
- ld hl,(nn) ; 2A 84 05
- ld sp,(nn) ; ED 7B 84 05
- ld ix,(nn) ; DD 2A 84 05
- ld iy,(nn) ; FD 2A 84 05
- ;***********************************************************
- ld bc,#nn ; 01 84 05
- ld de,#nn ; 11 84 05
- ld hl,#nn ; 21 84 05
- ld sp,#nn ; 31 84 05
- ld ix,#nn ; DD 21 84 05
- ld iy,#nn ; FD 21 84 05
- ;***********************************************************
- ld sp,hl ; F9
- ld sp,ix ; DD F9
- ld sp,iy ; FD F9
- ;***********************************************************
- ;load location (hl)
- ;with location (de)
- ;decrement de, hl
- ;decrement bc
- ldd ; ED A8
- ;***********************************************************
- ;load location (hl)
- ;with location (de)
- ;decrement de, hl
- ;decrement bc
- ;repeat until bc = 0
- lddr ; ED B8
- ;***********************************************************
- ;load location (hl)
- ;with location (de)
- ;increment de, hl
- ;decrement bc
- ldi ; ED A0
- ;***********************************************************
- ;load location (hl)
- ;with location (de)
- ;increment de, hl
- ;decrement bc
- ;repeat until bc = 0
- ldir ; ED B0
- ;***********************************************************
- ;2's complement of 'a'
- neg ; ED 44
- ;***********************************************************
- ;no operation
- nop ; 00
- ;***********************************************************
- ;logical 'or' operand with 'a'
- or a,(hl) ; B6
- or a,offset(ix) ; DD B6 55
- or a,offset(iy) ; FD B6 55
- or a,a ; B7
- or a,b ; B0
- or a,c ; B1
- or a,d ; B2
- or a,e ; B3
- or a,h ; B4
- or a,l ; B5
- or a,#n ; F6 20
- ;***********************************************************
- ;load output port (c)
- ;with location (hl)
- ;decrement hl and decrement b
- ;repeat until b = 0
- otdr ; ED BB
- ;***********************************************************
- ;load output port (c)
- ;with location (hl)
- ;increment hl and decrement b
- ;repeat until b = 0
- otir ; ED B3
- ;***********************************************************
- ;load output port (c) with reg
- out (c),a ; ED 79
- out (c),b ; ED 41
- out (c),c ; ED 49
- out (c),d ; ED 51
- out (c),e ; ED 59
- out (c),h ; ED 61
- out (c),l ; ED 69
- ;***********************************************************
- ;load output port (n) with 'a'
- out (n),a ; D3 20
- ;***********************************************************
- ;load output port (c)
- ;with location (hl)
- ;decrement hl and decrement b
- outd ; ED AB
- ;***********************************************************
- ;load output port (c)
- ;with location (hl)
- ;increment hl and decrement b
- outi ; ED A3
- ;***********************************************************
- ;load destination with top of stack
- pop af ; F1
- pop bc ; C1
- pop de ; D1
- pop hl ; E1
- pop ix ; DD E1
- pop iy ; FD E1
- ;***********************************************************
- ;put source on stack
- push af ; F5
- push bc ; C5
- push de ; D5
- push hl ; E5
- push ix ; DD F5
- push iy ; FD F5
- ;***********************************************************
- ;reset bit of location or register
- res 0,(hl) ; CB 86
- res 0,offset(ix) ; DD CB 55 86
- res 0,offset(iy) ; FD CB 55 86
- res 0,a ; CB 87
- res 0,b ; CB 80
- res 0,c ; CB 81
- res 0,d ; CB 82
- res 0,e ; CB 83
- res 0,h ; CB 84
- res 0,l ; CB 85
- res 1,(hl) ; CB 8E
- res 1,offset(ix) ; DD CB 55 8E
- res 1,offset(iy) ; FD CB 55 8E
- res 1,a ; CB 8F
- res 1,b ; CB 88
- res 1,c ; CB 89
- res 1,d ; CB 8A
- res 1,e ; CB 8B
- res 1,h ; CB 8C
- res 1,l ; CB 8D
- res 2,(hl) ; CB 96
- res 2,offset(ix) ; DD CB 55 96
- res 2,offset(iy) ; FD CB 55 96
- res 2,a ; CB 97
- res 2,b ; CB 90
- res 2,c ; CB 91
- res 2,d ; CB 92
- res 2,e ; CB 93
- res 2,h ; CB 94
- res 2,l ; CB 95
- res 3,(hl) ; CB 9E
- res 3,offset(ix) ; DD CB 55 9E
- res 3,offset(iy) ; FD CB 55 9E
- res 3,a ; CB 9F
- res 3,b ; CB 98
- res 3,c ; CB 99
- res 3,d ; CB 9A
- res 3,e ; CB 9B
- res 3,h ; CB 9C
- res 3,l ; CB 9D
- res 4,(hl) ; CB A6
- res 4,offset(ix) ; DD CB 55 A6
- res 4,offset(iy) ; FD CB 55 A6
- res 4,a ; CB A7
- res 4,b ; CB A0
- res 4,c ; CB A1
- res 4,d ; CB A2
- res 4,e ; CB A3
- res 4,h ; CB A4
- res 4,l ; CB A5
- res 5,(hl) ; CB AE
- res 5,offset(ix) ; DD CB 55 AE
- res 5,offset(iy) ; FD CB 55 AE
- res 5,a ; CB AF
- res 5,b ; CB A8
- res 5,c ; CB A9
- res 5,d ; CB AA
- res 5,e ; CB AB
- res 5,h ; CB AC
- res 5,l ; CB AD
- res 6,(hl) ; CB B6
- res 6,offset(ix) ; DD CB 55 B6
- res 6,offset(iy) ; FD CB 55 B6
- res 6,a ; CB B7
- res 6,b ; CB B0
- res 6,c ; CB B1
- res 6,d ; CB B2
- res 6,e ; CB B3
- res 6,h ; CB B4
- res 6,l ; CB B5
- res 7,(hl) ; CB BE
- res 7,offset(ix) ; DD CB 55 BE
- res 7,offset(iy) ; FD CB 55 BE
- res 7,a ; CB BF
- res 7,b ; CB B8
- res 7,c ; CB B9
- res 7,d ; CB BA
- res 7,e ; CB BB
- res 7,h ; CB BC
- res 7,l ; CB BD
- ;***********************************************************
- ;return from subroutine
- ret ; C9
- ;***********************************************************
- ;return from subroutine if condition is true
- ret C ; D8
- ret M ; F8
- ret NC ; D0
- ret NZ ; C0
- ret P ; F0
- ret PE ; E8
- ret PO ; E0
- ret Z ; C8
- ;***********************************************************
- ;return from interrupt
- reti ; ED 4D
- ;***********************************************************
- ;return from non-maskable interrupt
- retn ; ED 45
- ;***********************************************************
- ;rotate left through carry
- rl a,(hl) ; CB 16
- rl a,offset(ix) ; DD CB 55 16
- rl a,offset(iy) ; FD CB 55 16
- rl a,a ; CB 17
- rl a,b ; CB 10
- rl a,c ; CB 11
- rl a,d ; CB 12
- rl a,e ; CB 13
- rl a,h ; CB 14
- rl a,l ; CB 15
- ;***********************************************************
- ;rotate left 'a' with carry
- rla ; 17
- ;***********************************************************
- ;rotate left circular
- rlc a,(hl) ; CB 06
- rlc a,offset(ix) ; DD CB 55 06
- rlc a,offset(iy) ; FD CB 55 06
- rlc a,a ; CB 07
- rlc a,b ; CB 00
- rlc a,c ; CB 01
- rlc a,d ; CB 02
- rlc a,e ; CB 03
- rlc a,h ; CB 04
- rlc a,l ; CB 05
- ;***********************************************************
- ;rotate left 'a' circular
- rlca ; 07
- ;***********************************************************
- ;rotate digit left and right
- ;between 'a' and location (hl)
- rld ; ED 6F
- ;***********************************************************
- ;rotate right through carry
- rr a,(hl) ; CB 1E
- rr a,offset(ix) ; DD CB 55 1E
- rr a,offset(iy) ; FD CB 55 1E
- rr a,a ; CB 1F
- rr a,b ; CB 18
- rr a,c ; CB 19
- rr a,d ; CB 1A
- rr a,e ; CB 1B
- rr a,h ; CB 1C
- rr a,l ; CB 1D
- ;***********************************************************
- ;rotate 'a' right with carry
- rra ; 1F
- ;***********************************************************
- ;rotate right circular
- rrc a,(hl) ; CB 0E
- rrc a,offset(ix) ; DD CB 55 0E
- rrc a,offset(iy) ; FD CB 55 0E
- rrc a,a ; CB 0F
- rrc a,b ; CB 08
- rrc a,c ; CB 09
- rrc a,d ; CB 0A
- rrc a,e ; CB 0B
- rrc a,h ; CB 0C
- rrc a,l ; CB 0D
- ;***********************************************************
- ;rotate 'a' right circular
- rrca ; 0F
- ;***********************************************************
- ;rotate digit right and left
- ;between 'a' and location (hl)
- rrd ; ED 67
- ;***********************************************************
- ;restart location
- rst 0x00 ; C7
- rst 0x08 ; CF
- rst 0x10 ; D7
- rst 0x18 ; DF
- rst 0x20 ; E7
- rst 0x28 ; EF
- rst 0x30 ; F7
- rst 0x38 ; FF
- ;***********************************************************
- ;subtract with carry to 'a'
- sbc a,(hl) ; 9E
- sbc a,offset(ix) ; DD 9E 55
- sbc a,offset(iy) ; FD 9E 55
- sbc a,a ; 9F
- sbc a,b ; 98
- sbc a,c ; 99
- sbc a,d ; 9A
- sbc a,e ; 9B
- sbc a,h ; 9C
- sbc a,l ; 9D
- sbc a,#n ; DE 20
- ;***********************************************************
- ;add with carry register pair to 'hl'
- sbc hl,bc ; ED 42
- sbc hl,de ; ED 52
- sbc hl,hl ; ED 62
- sbc hl,sp ; ED 72
- ;***********************************************************
- ;set carry flag (C=1)
- scf ; 37
- ;***********************************************************
- ;set bit of location or register
- set 0,(hl) ; CB C6
- set 0,offset(ix) ; DD CB 55 C6
- set 0,offset(iy) ; FD CB 55 C6
- set 0,a ; CB C7
- set 0,b ; CB C0
- set 0,c ; CB C1
- set 0,d ; CB C2
- set 0,e ; CB C3
- set 0,h ; CB C4
- set 0,l ; CB C5
- set 1,(hl) ; CB CE
- set 1,offset(ix) ; DD CB 55 CE
- set 1,offset(iy) ; FD CB 55 CE
- set 1,a ; CB CF
- set 1,b ; CB C8
- set 1,c ; CB C9
- set 1,d ; CB CA
- set 1,e ; CB CB
- set 1,h ; CB CC
- set 1,l ; CB CD
- set 2,(hl) ; CB D6
- set 2,offset(ix) ; DD CB 55 D6
- set 2,offset(iy) ; FD CB 55 D6
- set 2,a ; CB D7
- set 2,b ; CB D0
- set 2,c ; CB D1
- set 2,d ; CB D2
- set 2,e ; CB D3
- set 2,h ; CB D4
- set 2,l ; CB D5
- set 3,(hl) ; CB DE
- set 3,offset(ix) ; DD CB 55 DE
- set 3,offset(iy) ; FD CB 55 DE
- set 3,a ; CB DF
- set 3,b ; CB D8
- set 3,c ; CB D9
- set 3,d ; CB DA
- set 3,e ; CB DB
- set 3,h ; CB DC
- set 3,l ; CB DD
- set 4,(hl) ; CB E6
- set 4,offset(ix) ; DD CB 55 E6
- set 4,offset(iy) ; FD CB 55 E6
- set 4,a ; CB E7
- set 4,b ; CB E0
- set 4,c ; CB E1
- set 4,d ; CB E2
- set 4,e ; CB E3
- set 4,h ; CB E4
- set 4,l ; CB E5
- set 5,(hl) ; CB EE
- set 5,offset(ix) ; DD CB 55 EE
- set 5,offset(iy) ; FD CB 55 EE
- set 5,a ; CB EF
- set 5,b ; CB E8
- set 5,c ; CB E9
- set 5,d ; CB EA
- set 5,e ; CB EB
- set 5,h ; CB EC
- set 5,l ; CB ED
- set 6,(hl) ; CB F6
- set 6,offset(ix) ; DD CB 55 F6
- set 6,offset(iy) ; FD CB 55 F6
- set 6,a ; CB F7
- set 6,b ; CB F0
- set 6,c ; CB F1
- set 6,d ; CB F2
- set 6,e ; CB F3
- set 6,h ; CB F4
- set 6,l ; CB F5
- set 7,(hl) ; CB FE
- set 7,offset(ix) ; DD CB 55 FE
- set 7,offset(iy) ; FD CB 55 FE
- set 7,a ; CB FF
- set 7,b ; CB F8
- set 7,c ; CB F9
- set 7,d ; CB FA
- set 7,e ; CB FB
- set 7,h ; CB FC
- set 7,l ; CB FD
- ;***********************************************************
- ;shift operand left arithmetic
- sla a,(hl) ; CB 26
- sla a,offset(ix) ; DD CB 55 26
- sla a,offset(iy) ; FD CB 55 26
- sla a,a ; CB 27
- sla a,b ; CB 20
- sla a,c ; CB 21
- sla a,d ; CB 22
- sla a,e ; CB 23
- sla a,h ; CB 24
- sla a,l ; CB 25
- ;***********************************************************
- ;shift operand right arithmetic
- sra a,(hl) ; CB 2E
- sra a,offset(ix) ; DD CB 55 2E
- sra a,offset(iy) ; FD CB 55 2E
- sra a,a ; CB 2F
- sra a,b ; CB 28
- sra a,c ; CB 29
- sra a,d ; CB 2A
- sra a,e ; CB 2B
- sra a,h ; CB 2C
- sra a,l ; CB 2D
- ;***********************************************************
- ;shift operand right logical
- srl a,(hl) ; CB 3E
- srl a,offset(ix) ; DD CB 55 3E
- srl a,offset(iy) ; FD CB 55 3E
- srl a,a ; CB 3F
- srl a,b ; CB 38
- srl a,c ; CB 39
- srl a,d ; CB 3A
- srl a,e ; CB 3B
- srl a,h ; CB 3C
- srl a,l ; CB 3D
- ;***********************************************************
- ;subtract operand from 'a'
- sub a,(hl) ; CB 96
- sub a,offset(ix) ; DD CB 55 96
- sub a,offset(iy) ; FD CB 55 96
- sub a,a ; CB 97
- sub a,b ; CB 90
- sub a,c ; CB 91
- sub a,d ; CB 92
- sub a,e ; CB 93
- sub a,h ; CB 94
- sub a,l ; CB 95
- sub a,#n ; D6 20
- ;***********************************************************
- ;logical 'xor' operand with 'a'
- xor a,(hl) ; AE
- xor a,offset(ix) ; DD AE 55
- xor a,offset(iy) ; FD AE 55
- xor a,a ; AF
- xor a,b ; A8
- xor a,c ; A9
- xor a,d ; AA
- xor a,e ; AB
- xor a,h ; AC
- xor a,l ; AD
- xor a,#n ; EE 20
-
- .page
- ;***********************************************************
- ; Hitachi HD64180 Codes
- ;***********************************************************
-
- .hd64
-
- ;***********************************************************
- ;load register with input from port (n)
- in0 a,(n) ; ED 38 20
- in0 b,(n) ; ED 00 20
- in0 c,(n) ; ED 08 20
- in0 d,(n) ; ED 10 20
- in0 e,(n) ; ED 18 20
- in0 h,(n) ; ED 20 20
- in0 l,(n) ; ED 28 20
- ;***********************************************************
- ;multiplication of each half
- ;of the specified register pair
- ;with the 16-bit result going to
- ;the specified register pair
- mlt bc ; ED 4C
- mlt de ; ED 5C
- mlt hl ; ED 6C
- mlt sp ; ED 7C
- ;***********************************************************
- ;load output port (c) with
- ;location (hl),
- ;decrement hl and b
- ;decrement c
- otdm ; ED 8B
- ;***********************************************************
- ;load output port (c) with
- ;location (hl),
- ;decrement hl and c
- ;decrement b
- ;repeat until b = 0
- otdmr ; ED 9B
- ;***********************************************************
- ;load output port (c) with
- ;location (hl),
- ;increment hl and b
- ;decrement c
- otim ; ED 83
- ;***********************************************************
- ;load output port (c) with
- ;location (hl),
- ;increment hl and c
- ;decrement b
- ;repeat until b = 0
- otimr ; ED 93
- ;***********************************************************
- ;load output port (n) from register
- out0 (n),a ; ED 39 20
- out0 (n),b ; ED 01 20
- out0 (n),c ; ED 09 20
- out0 (n),d ; ED 11 20
- out0 (n),e ; ED 19 20
- out0 (n),h ; ED 21 20
- out0 (n),l ; ED 29 20
- ;***********************************************************
- ;enter sleep mode
- slp ; ED 76
- ;***********************************************************
- ;non-destructive'and' with accumulator and specified operand
- tst a ; ED 3C
- tst b ; ED 04
- tst c ; ED 0C
- tst d ; ED 14
- tst e ; ED 1C
- tst h ; ED 24
- tst l ; ED 2C
- tst #n ; ED 64 20
- tst (hl) ; ED 34
- ;***********************************************************
- ;non-destructive 'and' of n and the contents of port (c)
- tstio #n ; ED 74 20
- ;***********************************************************
-
-